#ifndef SHP_TERRAIN_FILE_LOADER_H
#define SHP_TERRAIN_FILE_LOADER_H

#include "TerrainFileManager.h"
#include <string>

namespace dataengine
{
	/** Loads a terrain point cloud from an SHP file. It works only for 
	  SHP files that have points defined. If it has other kinds of shapes 
	  it will crash on loadFile.
	 */
	class ShpTerrainFileManager : public TerrainFileManager
	{
		public:
			/** Constructor 
				@param filename Name of the file to load */
			ShpTerrainFileManager(std::string filename) throw():TerrainFileManager(filename){}
			/** Destructor */
			virtual ~ShpTerrainFileManager() throw(){}
			/** Checks if the file can be loaded with this class */
			virtual bool canLoadFile() throw();
			/** Loads the point cloud in the file */
            virtual geom::TerrainModel loadFile();
	};
}
#endif
